2015-06-29 17 views
6

Khi tôi chạy nuget pack MyProject.csproj từ dòng lệnh, tôi nhận được lỗi sau:NuGet gói được bỏ qua thông tin lắp ráp

The replacement token 'author' has no value.

Tôi đã kiểm tra AssemblyInfo của tôi, và AssemblyCompany được quy định như "AJ Richardson". Tôi đã thử bằng tay thay thế $author$ với AJ Richardson trong tập tin nuspec của tôi, nhưng sau đó tôi nhận được một lỗi hơi khác nhau:

The replacement token 'description' has no value.

Nhưng AssemblyDescription cũng được xác định. Có vẻ như NuGet không đọc bất cứ điều gì từ số AssemblyInfo của tôi. Tôi đã xác minh rằng AssemblyInfo được bao gồm trong dự án của tôi và hành động xây dựng được đặt thành Biên dịch.

Tôi đã thực hiện một vài gói NuGet trước và không có bất kỳ vấn đề nào. Sự khác biệt duy nhất giữa gói này và các gói trước đó của tôi là gói này có phụ thuộc.

Để tham khảo, đây là nuspec tôi:

<?xml version="1.0"?> 
<package> 
    <metadata> 
    <id>$id$</id> 
    <version>1.0.0</version> 
    <title>$title$</title> 
    <authors>$author$</authors> 
    <owners>$author$</owners> 
    <licenseUrl>https://github.com/my/repo/blob/master/LICENSE</licenseUrl> 
    <projectUrl>https://github.com/my/repo</projectUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>$description$</description> 
    <releaseNotes>Initial release.</releaseNotes> 
    <copyright>Copyright AJ Richardson 2015</copyright> 
    <tags></tags> 
    </metadata> 
    <dependencies> 
    <dependency id="Newtonsoft.Json" version="6.0.1" /> 
    </dependencies> 
</package> 

Vì vậy, câu hỏi của tôi là, tại sao không NuGet đọc của tôi AssemblyInfo, và làm thế nào để thuyết phục nó để làm điều đó?

Trả lời

6

Tôi nghĩ rằng vấn đề là tôi đã không xây dựng dự án của mình kể từ khi sửa đổi số AssemblyInfo. Tôi đã xây dựng lại và nó đang hoạt động.

(Như một mặt lưu ý, tôi cũng đã có <dependencies> trong phần sai - nó phải được bên trong <metadata> -. Nhưng điều đó đã không gây ra lỗi trong câu hỏi của tôi)

+1

Phiên bản NuGet bạn đang sử dụng là gì? Tôi đang gặp vấn đề tương tự với NuGet v3.5.0 và dự án VS2015. Nó không thể nhận giá trị Tác giả, mặc dù dự án đã được xây dựng lại. – EndlessSpace

+0

@EndlessSpace Tôi không thể nhớ chính xác vì đây là một năm rưỡi trước. Nó sẽ là v3.x (có thể là 3.0 hoặc 3.1?) –

+1

Ngoài ra, hãy chắc chắn rằng bạn đang xây dựng trong cùng một cấu hình như 'gói nuget' đang sử dụng. –

1

Tôi cũng đã gặp các vấn đề trong việc này liên quan; cập nhật của tôi cho AssemblyInfo dường như không được chọn - mặc dù tôi đang xây dựng và xây dựng lại, v.v.

Tôi đã có thể giải quyết vấn đề bằng cách nói rõ ràng NuGet để xây dựng (trong trường hợp của tôi trong Bản phát hành, có ký hiệu pdb) :

nuget pack foo.csproj -Build -Symbols -Properties Configuration=Release

Các vấn đề liên quan