如何从NuGet包中排除T4模板

时间:2015-11-11 18:38:07

标签: nuget t4

我正在创建一个NuGet包,它为我的WebAPI项目提供了一个客户端,它反映了ApiController并使用与控制器上定义的操作相对应的方法为每个创建了类。不幸的是,当我运行.tt时,nuget.exe pack Client.csproj文件被包含在内容文件夹中。我尝试使用.nuspec指令创建<files>文件,但我似乎无法单独排除该文件。有谁知道如何强制包排除T4模板?

项目结构大致如下:

Website/
    Controllers/
        UserController.cs
        ...
Client/
    Client.tt
    Client.cs
        namespace Client
            class UserService
            ...

我想要一个像NuGet这样的包:

lib/
    net45/
        Client.dll
            namespace Client
                class UserService

但我得到的是这样的东西:

content/
    Client.tt
lib/
    net45/
        Client.dll
            namespace Client
                class UserService
                ...

5 个答案:

答案 0 :(得分:6)

log4j.rootCategory=DEBUG, NotConsole

log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender

log4j.appender.NotConsole.File=/<LIVY SERVER INSTALL PATH>/logs/livy.log

log4j.appender.NotConsole.maxFileSize=20MB

log4j.appender.NotConsole.layout=org.apache.log4j.PatternLayout

log4j.appender.NotConsole.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

答案 1 :(得分:2)

原来简单的解决方案是在通过命令行创建包时使用-Exclude选项。

NuGet.exe Pack Client.csproj -Exclude *.tt

新包装看起来与问题中指定完全一致。

答案 2 :(得分:0)

如果您使用的是Azure DevOps,我尝试了很长时间,要么尝试使用带有-exclude的自定义nuget pack命令,但该命令不起作用,或者尝试添加.nuspec文件并从中排除内容。但是,没有任何效果。

我如何在项目中修复它,是单击每个.tt文件并将“构建操作”从“内容”设置为“无”。它似乎对项目没有任何影响。

也许有人可以找到更好的解决方案,但是我花了1-2天的时间苦苦挣扎,直到我决定拧紧它并改变构建动作。

答案 3 :(得分:0)

就我而言,问题出在 csproj 文件中,我必须修复

const userRef = db.collection('users').doc(payload.email)     

                        return userRef.update({loginstreak: admin.firestore.FieldValue.increment(1)})
                        .then(() => {    

                        const getuser = userRef.get()
                        return getuser
                        .then(doc => {
                            if (!doc.exists) {
                                console.log('No such document!');
                              } else {


                                if (doc.data().loginstreak === 2) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(1)})                                     
                                  .then(() => {
                                  conv.add('Hooray')
          console.log("If statement 2")
          conv.close('bye')
                                })
                                }

                                else if (doc.data().loginstreak === 3) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(2)}) 
                                  .then(() => {
                                  conv.add('Hooray')
          console.log("If statement 3")
          conv.close('bye')
                                })
                                }

                                else if (doc.data().loginstreak === 4) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(3)}) 
                                  .then(() => {
                                  conv.add('Hooray')
          console.log("If statement 4")
          conv.close('bye')
                                })
                                }

                                else if (doc.data().loginstreak === 5) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(4)}) 
                                  .then(() => {
                                  conv.add('Hooray')
          console.log("If statement 5")
          conv.close('bye')
                                })
                                }

                                else if (doc.data().loginstreak === 6) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(5)}) 
                                  .then(() => {
                                 conv.add('Hooray')
          console.log("If statement 6")
          conv.close('bye')
                                })
                                }

                                else if (doc.data().loginstreak === 7) {
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(6)}) 
                                  .then(() => {
                                  conv.add('Hooray')
          console.log("If statement 7")
          conv.close('bye')
                                })
                                }

                                else {                              
                                  return userRef.update({wekelijkssuccescount: admin.firestore.FieldValue.increment(1)}) 
                                  .then(() => {
                                  console.log('Loginstreak: ' + doc.data().loginstreak)
                                  conv.add('Hooray')

          conv.close('bye')
                                }) 
                                } 
                              }}) })

<Content Include="SomeFile.txt" />

答案 4 :(得分:0)

要以@Baur的答案为基础,可以设置以下内容:

<None Include="SomeFile.tt" />

在IDE中,右键单击文件并转到属性。

单击BuildAction属性 将其设置为无