我有一个昨天工作的 ASP.NET MVC5 应用程序,现在当我尝试构建时出现此错误:
此项目引用此计算机上缺少的 NuGet 包。
我选中了两个选项,允许 nuget 自动下载和安装丢失的软件包,选中/打开。我还尝试删除包文件夹中的所有文件,然后让 nuget 重新下载它们。此外,当我打开 nuget 并查找更新时,它说不需要安装任何更新。我想不出还能做些什么来超越这个令人惊讶的烦人问题。
我还通过右键单击项目并选择该选项来启用 nuget 恢复。然后它在该文件夹中添加了一个 nuget 文件夹和三个项目,但没有解决问题。我已经尝试重新构建,但仍然得到同样的错误。
The operation has timed out.
错误。在构建过程中。您需要检查构建日志或 Visual Studio Online Build Failed 信息屏幕中的 Diagnostics 选项卡。
就我而言,我必须从 .csproj 文件中删除以下内容:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
实际上,在此代码段中,您可以看到错误消息的来源。
我正在从 MSBuild-Integrated Package Restore 转换为 Automatic Package Restore (http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore)
一种解决方案是从 .csproj 文件中删除以下内容:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
如何?
右键单击项目。卸载项目。右键单击项目。编辑 csproj。从文件中删除零件。节省。右键单击项目。重新加载项目。
在我的情况下,它发生在我将解决方案文件夹从一个位置移动到另一个位置,重新组织它并且在此过程中它的相对文件夹结构发生变化之后。
所以我不得不在我的 .csproj
文件中编辑所有类似于以下条目的条目
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
至
<Import Project="packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
(注意从 ..\packages\
到 packages\
的变化。在您的情况下,它可能是不同的相对结构,但您明白了。)
.csproj
相对于您的 .sln
的位置无关紧要。重要的是您的 .csproj
中引用的任何内容是否已移动到其他地方。如果是这样,那么您需要修复它。如果您将“.csproj”及其引用的所有内容原封不动地移动,但将 .sln
保留在原处,那么您必须将 .sln
文件修复到 .csproj
-es 的新位置,但那里将无需编辑 .csproj
文件。
我通过右键单击我的解决方案然后单击启用 NuGet 包还原选项轻松解决了这个问题
(PS:确保你有 Nuget Install From Tools--> Extensions and Update--> Nuget Package Manager for Visual Studio 2013。如果没有先安装这个扩展)
希望能帮助到你。
MSBuild-Integrated Package Restore
的部分。那是旧方法,它列出了您应该使用新方法的一些原因。
就我而言,它与 Microsoft.Build.Bcl 版本有关。我的 nuget 包版本是 1.0.21,但我的项目文件仍然指向版本 1.0.14
所以我改变了我的 .csproj 文件:
<Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
<Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
<Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
</Target>
至:
<Import Project="..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
<Error Condition="!Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
<Error Condition="Exists('..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
并且构建再次工作。
我有同样的问题。当我复制现有项目并将其转移到我的解决方案目录的文件夹中并将其作为现有项目添加到我的空解决方案中时,我遇到了它。所以我必须编辑我的 csproj 文件并寻找这行特定的代码,大多数时候,这可以在最后几行找到:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
在该行之后,我必须将这些注释掉:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.targets" Condition="Exists('..\..\..\..\..\packages\EntityFramework.6.4.0\build\EntityFramework.targets')" />
您的解决方案会提示您的项目有更改,只需选择 Reload All:
https://i.stack.imgur.com/bk3j4.jpg
如果您使用的是 TFS
从解决方案的 .nuget
文件夹中删除 NuGet.exe
和 NuGet.targets
文件。确保文件本身也从解决方案工作区中删除。保留 NuGet.Config
文件以继续绕过将包添加到源代码管理。
编辑解决方案中的每个项目文件(例如,.csproj、.vbproj)并删除对 NuGet.targets
文件的所有引用。在您选择的编辑器中打开项目文件并删除以下设置:
<RestorePackages>true</RestorePackages>
...
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
如果您不使用 TFS
从您的解决方案中删除 .nuget
文件夹。确保文件夹本身也从解决方案工作区中删除。
编辑解决方案中的每个项目文件(例如,.csproj、.vbproj)并删除对 NuGet.targets
文件的所有引用。在您选择的编辑器中打开项目文件并删除以下设置:
<RestorePackages>true</RestorePackages>
...
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
参考:Migrating MSBuild-Integrated solutions to use Automatic Package Restore
删除了 .csproj 文件中的以下行
<Import Project="$(SolutionDir)\.nuget\NuGet.targets"
Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer.
Enable NuGet Package Restore to download them. For more information, see
http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')"
Text="$([System.String]::Format('$(ErrorText)',
'$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
软件包是否可能已恢复到错误的文件夹?检查 csproj 文件中的路径是否正确。
如果它们不同,则可能是由于现在将包恢复到不同的位置。这可能是由于在指定这样的节点时检查了 NuGet.Config 文件:
<add key="repositoryPath" value="..\..\Packages" />
正在恢复包,项目仍在查看旧位置。
我遇到过同样的问题。在我的情况下,安装 Microsoft.Bcl.Build 包解决了这个问题。
1.0.21
版本中,软件包中没有文件,安装 1.0.14
版本解决了这个问题。
一种解决方案是从 .csproj 文件中删除以下内容:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
此项目引用此计算机上缺少的 NuGet 包。启用 NuGet 包还原以下载它们。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是 {0}。
首先要尝试的是右键单击解决方案并选择“还原 Nuget 包”。
就我而言,这不起作用,所以我遵循了一些关于删除项目文件中的“导入”和“目标”的建议,这适用于我的 3 个项目中的 2 个,但在最后一个项目中出现了不同的错误。
有效的是打开包管理器控制台并运行:
Update-Package -reinstall -ProjectName MyProjectName
这需要一些时间,但由于它重新安装所有包,您的项目将毫无问题地编译
这些是我用来解决问题的步骤:
要将 nuget 包添加到您的解决方案中:
右键单击要引用 nuget 包的项目(不是解决方案)。选择:管理 nuget 包 在弹出窗口的左侧,您有三个选择。如果您选择 Online > Microsoft & .NET,您将能够安装 Microsoft ASP.NET Web API 2.2 包 grouper(或任何您需要的包 - 我的是这个)。现在右键单击您的解决方案(不是项目)并选择启用 nuget 包还原。这将导致包在编译时自动下载。
对我来说,它起作用了,因为我只是将 .nuget 文件夹从工作解决方案复制到现有解决方案,并引用了它的内容!
当 csproj 和 sln 文件在同一个文件夹中时,我就有了这个(愚蠢,我知道)。一旦我将 sln 文件移动到 csproj 文件夹上方的文件夹中
当我从公司获得一台新计算机并尝试在使用 Git 克隆项目后构建项目时,我遇到了这个问题。问题是我的 NuGet 设置不包括从中获取包的远程存储库。 Following the FAQ at NuGet.org,我发现了这个:
我在我的存储库列表中没有看到 nuget.org,我该如何取回它?将 https://api.nuget.org/v3/index.json 添加到您的源列表,或删除 %appdata%\.nuget\NuGet.Config (Windows) 或 ~/.nuget/NuGet/NuGet.Config (Mac /Linux) 并让 NuGet 重新创建它。
就我而言,我的机器上根本没有 %appdata%\.nuget
目录,因此在 Visual Studio 中,我按照以下步骤解决了该问题:
单击工具栏中的工具 > NuGet 包管理器 > 包管理器设置 从左侧列表中选择 NuGet 包管理器 > 包源 单击右上角的绿色 + 以添加新源 将名称:值设置为 NuGet.org将 Source: 值设置为 https://api.nuget.org/v3/index.json
之后,NuGet 能够下载它找不到的包。
为了摆脱构建中的错误,我执行了以下步骤:
删除解决方案中的bin和obj目录点击工具栏中的Build > Rebuild Solution
构建完成后,错误就消失了。
该错误似乎是在代码中的某处触发的。让我们看一下 .csproj 文件,它可以在最后找到。
步骤 1 从 package.config 文件中删除包。
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />
步骤 2 编辑 .csproj 项目文件并删除以下设置
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
步骤 3 转到包管理器控制台并运行命令 Update-Package –reinstall
当我将类库引用到我的 MVC Web 应用程序中时,我遇到了同样的问题,
问题是两个项目之间的 nuget 包版本号不匹配。
例如:我的类库的 log4net 为 1.2.3,但我的 webapp 有 1.2.6
修复:只需确保两个项目都引用了相同的版本号。
编辑 .sln 和 .csproj 并不总是那么容易或理想。获得错误列表后,您可以查看哪些项目缺少包(此外,References 节点通常指示缺少程序集,除非包是源代码、资源、图像或只是基于文本的包)。
除非您使用最新版本的软件包,否则删除然后添加软件包不是一个好主意。否则,要为惊喜做好准备,而不是总是令人愉快的。
例如,如果包是 EntityFramework,那么您可以从 NuGet 库中获得最新版本,在撰写此评论时它是 6.1.3。
所以,或许最安全的处理方式就是将丢失的包一一还原。是的,有点痛苦的练习,但由于不同的包版本而追逐细微的错误可能更令人不快。
话虽如此,让 EntityFramework 再次成为丢失的包,您可以在 Package-Manager 控制台中发出以下命令:
PM> Install-Package EntityFramework -Version 6.0.1
这将安装正确的版本,即 6.0.1,即在 packages.config 中指定的版本:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.0.1" targetFramework="net451" />
</packages>
我有同样的错误,但在我的情况下,它根本与 nuget 包无关。我的解决方案的项目引用了不属于我的解决方案且未构建的其他项目。在使用其他解决方案构建它们之后(或者我也可以将它们包含到我的解决方案中),并在 Visual Studio 中重新打开我的解决方案后,问题得到了解决。
一段时间后解决了这个问题。只需添加带有源 https://api.nuget.org/v3/index.json 的包源即可解决我这边的错误
我在解决方案根文件夹中创建了一个名为“.nuget”的文件夹,然后在此文件夹中添加了文件“NuGet.Config”,内容如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
然后创建文件'.nuGet.targets'如下$(MSBuildProjectDirectory)..\
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default will used the registered sources under %APPDATA%\NuGet\NuGet.Config -->
<!--
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
<PackagesConfig>packages.config</PackagesConfig>
<PackagesDir>$(SolutionDir)packages</PackagesDir>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\nuget.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " />
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<EnvKey ParameterType="System.String" Required="true" />
<EnvValue ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process);
}
catch {
}
]]>
</Code>
</Task>
</UsingTask>