我正在尝试使用Azure DevOps
构建解决方案,并将结果作为nuGet包发布在私有存储库中。
解决方案中的项目包含包含英语文本的本地化资源Language.resx
。
本地化的版本是:
Language.da.resx
,Language.se.resx
和Language.no.resx
,但这些都不包含在生成的nuget程序包中。
我尝试将/target:Resource,Compile
添加到DevOps中“构建解决方案”任务的MSBuild参数属性中,但这只是导致一个错误,表明未找到“资源”目标。
我确定我只是缺少明显的东西,但我看不到它。 我必须亲近,nuGet包毕竟会发布并且可以工作,除了本地化资源。
我检查了生成的nuGet软件包,并从相关项目中提取了dll。
用.Net Reflector 10
打开dll会告诉我它确实确实包含英文文本字符串,但没有其他语言。
希望其他人可以帮助我:-)
答案 0 :(得分:0)
看来本地化资源确实是默认构建的,尽管在.Net Reflector 10
中不可见。
原因是它们没有包含在“打包”任务的nuGet包中。
一些研究使我向项目添加了.nuspec
文件。
在此文件中,我指定了相关文件等,它们现在包含在nuGet软件包中。
但是不是很理想,因为文件和依赖项列表现在必须手动维护。但是我找不到使它动态化的方法。
不过,可以使用指向AssemblyInfo.cs
文件的变量来使.nuspec文件中的大多数细节变为动态。
我最终在.nuspec
文件中获得了以下内容(尽管某些细节已清除,因为它是公开显示的)
注意:Release
部分的src
属性中的单词files
是我的构建配置文件的名称。您的解决方案可能使用其他名称。
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<!-- The identifier that must be unique within the hosting gallery -->
<id>$id$</id>
<!-- The package version number that is used when resolving dependencies -->
<version>$version$</version>
<!-- Authors contain text that appears directly on the gallery -->
<authors>$author$</authors>
<!--
Owners are typically nuget.org identities that allow gallery
users to easily find other packages by the same owners.
-->
<owners>$author$</owners>
<!-- License and project URLs provide links for the gallery -->
<!--<licenseUrl></licenseUrl>-->
<!--<projectUrl></projectUrl>-->
<!-- The icon is used in Visual Studio's package manager UI -->
<!--<iconUrl></iconUrl>-->
<!--
If true, this value prompts the user to accept the license when
installing the package.
-->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<!-- Any details about this particular release -->
<!--<releaseNotes></releaseNotes>-->
<!--
The description can be used in package manager UI. Note that the
nuget.org gallery uses information you add in the portal.
Must be included, and must never be empty.
-->
<description>$description$</description>
<!-- Copyright information -->
<copyright>$copyright$</copyright>
<!-- Tags appear in the gallery and can be used for tag searches -->
<!--<tags></tags>-->
<!-- Dependencies are automatically installed when the package is installed -->
<dependencies>
<dependency id="MicrosoftOfficeCore" version="15.0.0" />
<dependency id="Microsoft.Office.Interop.Word" version="15.0.4797.1003" />
</dependencies>
</metadata>
<!-- Files to include in the package -->
<files>
<file src="bin\Release\$id$.dll" target="lib\net462\$id$.dll" />
<file src="bin\Release\da\$id$.resources.dll" target="lib\net462\da\$id$.resources.dll" />
<file src="bin\Release\no\$id$.resources.dll" target="lib\net462\no\$id$.resources.dll" />
<file src="bin\Release\sv\$id$.resources.dll" target="lib\net462\sv\$id$.resources.dll" />
</files>
</package>