首页 > 解决方案 > 在nuget中为公共路径创建变量

问题描述

安装 nuget 包后,我想在 .cspoj 的提示路径中为公共路径提供变量。例子:

  1. 在 cs 项目中安装 myNuget 包后,项目参考中添加了一些可交付成果。
  2. 卸载项目,然后编辑 .csproj。
  3. 观察可交付的提示路径:..\packages\myNuget1.0.0\lib\net46\sample.dll

这里不是 ..\packages\myNuget1.0.0\lib\net46\sample.dll 路径,我希望它为 $(MyDLLSPath)\sample.dll。

我不知道如何创建这些变量。我有 .nuspec、.props、.targets 和 .nupkg 文件。

我正在尝试为 .targets 文件中的路径创建属性,见下文,但问题仍未解决:


<?xml version="1.0" encoding="utf-8"?>
<Project
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
  
   <PropertyGroup>
    <UserTargetsPath>$(MSBuildProjectFullPath).user</UserTargetsPath> 
  </PropertyGroup>
  
   <PropertyGroup>
    <SDKInstallPath Condition=" '$(SDKInstallPath)' == ''">$(MSBuildThisFileDirectory)..\lib\net46</SDKInstallPath>
    <SetupPath>$(SDKInstallPath)\Sample.dll</SetupPath>
    <SDKExtDir Condition=" '$(SDKExtDir)' == ''">$(SDKInstallPath)</SDKExtDir>
  </PropertyGroup>
  
 <UsingTask TaskName="ResolveReferences" AssemblyFile="$(SDKInstallPath)\Intergraph.Setup.dll"/>
 
 <ItemGroup>
    <MyExtension Include="$(MyExtension)"  Condition=" '$(MyExtension)' != '' " />
  </ItemGroup>
  
<PropertyGroup>
    <ResolveMyExtensionReferencesDependsOn>
      PrepareForBuild
    </ResolveMyExtensionReferencesDependsOn>
  </PropertyGroup>
  
  
  <Target
    Name="ResolveMyExtensionReferences"
    DependsOnTargets="$(ResolveMyExtensionReferencesDependsOn)"
    Condition=" '@(MyExtension)' != ''">

 
    <CreateProperty Condition=" '$(MyExtensionSearchPaths)' == '' " Value="
      $(ReferencePaths);
      {HintPathFromItem};
      {RawFileName};
      $(SDKExtDir)
      ">
      <Output TaskParameter="Value" PropertyName="MyExtensionSearchPaths" />
    </CreateProperty>

    <ResolveReferences
      MyReferences="@(MyExtension)"
      SearchPaths="$(MyExtensionSearchPaths)"
      SearchFilenameExtensions=".dll">
      <Output TaskParameter="ResolvedMyReferences" ItemName="_AllResolvedMyExtensionPaths" />
    </ResolveReferences>

    <!-- Remove duplicate extension items that would cause build errors -->
    <RemoveDuplicates Inputs="@(_AllResolvedMyExtensionPaths)">
      <Output TaskParameter="Filtered" ItemName="_ResolvedMyExtensionPaths" />
    </RemoveDuplicates>
  </Target>

</Project>

提前致谢!

标签: nugetnuget-spec

解决方案


推荐阅读