当前位置: 首页 > 编程日记 > 正文

VS2008 VS2010发布网站时如何产生固定命名的 Dll 文件

VS2008 发布网站时如何产生固定命名的 Dll 文件
dev.firnow.com    时间 : 2010-12-08  作者:网络   编辑:fnw 点击:  82 [ 评论 ]
-
-
VS2008 在发布网站时,bin 目录里为所有 cs 生成的 dll 文件每次都是随机命名的,像这样子的 App_Web_g2dnx-qj.dll, App_Web_s9nor8mv.dll,这样对更新 Live 站点很不方便,因为动态库名变了,涉及到每一个 aspx 文件每次都重新更改了对库的引用声明:


显示代码打印
1 <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_s9nor8mv" %>


即使有一个 cs 的小改动,由于生成的动态库名称不一样,造成所有的 aspx 文件都得重传一遍。如果能固定动态库的文件名,更新网站时就省事多了,只改了 cs 的话,重新生成 dll 文件,只需要替换这一个 dll 文件就 OK 啦。我们可以找到几种做法:

1. 在“发布网站”的选项中,勾选“使用固定命名和单页程序集”,每个页面对应的一个 dll,并且这个 dll 文件名是固定的(名字虽然看起来很随便),只要 aspx 文件名没变。这会生成大量的 dll 文件,实际应用中还没看到可取之处。

2. 把所有的 cs 文件放到 App_Code 目录中,这样所有的 cs 每次都生成到 App_Code.dll 动态库中。这时候的 aspx 文件第一行指令在新建后要更改为:


显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %>

或者:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, App_Code" %>

这样发布的时候,对 cs 的小改动只需替换一个 App_Code.dll 文件即可。在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。

3. 第三种办法,其实与前一种十分类似,如果觉得把 aspx 对应的 cs  文件放到 App_Code 目录中有点唐突,那么为当前解决方案新加一个 Class Library 项目,例如 ClassLibrary1,把 aspx 的 cs 文件都放到这个工程中吧,相应的 aspx 文件指令就是:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %>


或者:

显示代码打印
1 <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, ClassLibrary1" %>


小改动替换 ClassLibrary1.dll 即可,同理在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。只有 cs 文件也要放服务器上,由 Asp.Net 来编译程序时,CodeFile 指令才是有其作为的。

4. Web Deployment Projects with Visual Studio 2008下载地址:
http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi,安装文件十分小, 686K。

简单操作如下:

1) 下载后直接安装,安装完后打开VS2008;

2) 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project], 也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后. 设置好指定名称(如 WebSite1_deploy)和存放目录(c:\target), 添加后,
以看到当前解决方案中多了一项( WebSite1_deploy), WebSite1_deploy 有很多其它属性可以设置,其中有一重要的默认选项:

Merge all outputs to a single assembly

Assembly name: 是 WebSite1_deploy.

3) 在刚添加的方案中点右键->[生成], 或者是对 WebSite1_deploy 进行 Build 都会在前面指定的目录(c:\target) 中生成可发布的文件的目录了。进到 c:\target 目录中,翻一下你就会发现你的 Web 项目中所有的 cs 文件,包括 aspx 关联的和 App_Code 中的 css 文件都编译到 WebSite1_deploy.dll 文件中去了。aspx 文件的头部是:

显示代码打印
1 <%@ page language="C#" autoeventwireup="true" inherits="Default, WebSite1_deploy" %>


只要 WebSite1_deploy.dll 文件名是固定的,aspx 的声明部分也总是不变的,所以每次只是对 cs 文件的修改补,只需换个 WebSite1_deploy.dll 文件就行啦。

相比于第二、三种方法,只需一次设置,用不着每建一个 aspx 文件对代码文件进行搬动,还得改改 aspx 文件的声明部分,而且对于 Web Site 也能构建出 DEBUG 的版本出来,所以这应该是终极的。

======================================================

在用VS2008发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的; 
如果要固定生成文件名如何固定呢?
有以下两种方案:
一、每个页面的程序集分别生成对应的dll; 方法:在“发布网站”的选项中,勾选“使用固定命名和单页程序集”

二、整个站点的程序集都生成为一个文件;方法:需下载MS提供的插件,经过简单的设置可生成自定义的文件名(.dll):
Web Deployment Projects with Visual Studio 2008下载地址:
http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi
简单操作如下:
1.下载后直接安装,安装完后打开VS2008;
2.在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project],也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后.设置好指定名称和存放目录添加后,可以看到当前解决方案中多了一项,有很多其它属性,就自己去设置了;
3.在刚添加的方案中点右键->[生成],就会生成相应文件和目录了

===========================================================

VS2010

VS2010可以直接创建WebApplication项目,这样发布就是一个DLL了.

VS2010可以直接创建WebApplication项目,这样发布就是一个DLL了.

VS2010可以直接创建WebApplication项目,这样发布就是一个DLL

如果是WebApplication的话可以右键Web项目 》 发布

如果是Website地方话用微软的发布插件Web Development Tool

下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=89f2c4f5-5d3a-49b6-bcad-f776c6edfa63&displaylang=en

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hiyavip/archive/2010/05/03/5552626.aspx

转载于:https://www.cnblogs.com/suzh/archive/2011/04/26/2029564.html

相关文章:

LeetCode实战:两数相加

题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two nu…

计算机中的概念: 视图 VS 镜像

这两个概念还是不太一样的。下面来说说个人的理解&#xff0c;记录一下。 1. 镜像 镜像可以理解为一份完全一样的拷贝。也就是"深度拷贝"&#xff0c;一个复制品。 比如 iso映像文件&#xff0c;ubuntu-12.04.5-desktop-amd64.iso 比如 数据的多副本&#xff0c;用于…

Python入门学习方法有哪些?

Python编程语言是相对比较简单的一门编程语言&#xff0c;在IT行业&#xff0c;很多零基础学员都会优先选择Python语言进行学习&#xff0c;希望可以进入到IT这个大家庭&#xff0c;那么想要学好Python编程&#xff0c;针对Python入门学习方法有哪些呢?来看看下面的详细介绍。…

LeetCode实战:寻找两个有序数组的中位数

题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (mn)). You may assume nums1 and nums2 cannot be both empty. Example 1: nums1 …

从Preact了解一个类React的框架是怎么实现的(一): 元素创建

首先欢迎大家关注我的掘金账号和Github博客&#xff0c;也算是对我的一点鼓励&#xff0c;毕竟写东西没法获得变现&#xff0c;能坚持下去也是靠的是自己的热情和大家的鼓励。  之前分享过几篇关于React的文章: React技术内幕: key带来了什么React技术内幕: setState的秘密其…

呵呵,哈哈,嘿嘿,从今天起就开始写博客文了

第一篇嘛&#xff0c;完完全全的水篇&#xff0c;因为确实不知道该写些什么好啦&#xff0c;恩&#xff0c;哈&#xff0c;以后就多写一些的了&#xff0c;嘘&#xff0c;玩别的去了&#xff01;拜拜&#xff01;转载于:https://www.cnblogs.com/thinkgao/archive/2011/04/26/2…

UI设计培训怎么选择就业方向

相信大部分人学习UI设计就是为了找到一份不错的工作&#xff0c;那么UI设计培训怎么选择就业方向呢?UI设计师有哪些就业方向选择呢?来看看下面的详细介绍吧。 UI设计培训怎么选择就业方向? 图形设计&#xff1a;图形设计不仅仅是美术的设计。在UI设计的工作中&#xff0c;图…

用JavaScript获取URL中的参数值

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"> <title>测试JS获取…

LeetCode实战:最长回文子串

题目英文 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer.Example 2: Input: &quo…

2017年9月11日 梁勇 java教材 编程练习题 第二章 2.15 键盘 读取两个点的坐标值(小数),控制台输出两点间距离。...

package com.swift;import java.util.Scanner;public class PToP {public static void main(String[] args) {Scanner scannew Scanner(System.in);System.out.println("请输入第一个点的坐标值x1");Double x1Double.parseDouble(scan.nextLine());System.out.printl…

学习java技术有前途吗

java技术在我国的普及已经是非常广泛的了&#xff0c;很多人都知道&#xff0c;java行业的发展前景是非常好的&#xff0c;但竞争压力也是非常大的&#xff0c;到底学习java技术有前途吗?来看看下面的详细介绍。 学习java技术有前途吗?目前按照各类招聘来看&#xff0c;Java的…

充分理解表达式——《狂人C》习题解答2(第二章习题5)

/* 编程求1357911。 */ #include <stdio.h> #include <stdlib.h>int main( void ) {printf ("1357911") ; printf ("%d\n" , 1 3 5 7 9 11 ) ;system("PAUSE"); return 0;}这个题目的主要目的有两个&#xff1a; 1.掌握写整…

LeetCode实战:整数反转

题目英文 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321Example 2: Input: -123 Output: -321Example 3: Input: 120 Output: 21Note: Assume we are dealing with an environment which could only store integers …

深度洞悉2017企业IT三大关注焦点

本文讲的是深度洞悉2017企业IT三大关注焦点【IT168 云计算】随着经济走向整体放缓&#xff0c;2017有哪些议题会受到企业IT的关注? 一&#xff1a;如何提升员工工作体验 随着80后、90后成为职场主力军&#xff0c;数字化工作场所的推行与建立日渐成为主流&#xff0c;企业将更…

APP测试和传统软件测试有什么区别

APP测试和传统软件测试有什么区别?APP测试和传统测试是有一些区别的&#xff0c;移动APP的特点使得它与传统软件在开发、测试方面都有所不同。比较移动APP测试与传统软件测试的不同&#xff0c;要从以下几个方面进行考虑&#xff1a; (1) 页面布局不同 对于传统软件&#xff0…

LeetCode实战:字符串转换整数 (atoi)

题目英文 Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or…

[C#] enum 枚举

默认情况下&#xff0c;枚举第一个值是0&#xff0c; 可显式为枚举赋值。 可以定义枚举的基础类型&#xff0c;如enum E : short {}, sizeof(E) 2&#xff1b;默认情况下是int。 枚举的继承链&#xff1a;ValueType->Enum->enum 枚举类型和基础类型之间的转换都是显式的…

制作Windows Mobile程序安装包

使用Visual Studio 2005制作wm上的cab安装包 打开项目&#xff0c;解决方案中添加新项&#xff0c;添加"智能设置CAB项目"&#xff1b;或者在空VS中新建一个"智能设置CAB项目" 添加新项 左侧的Program Files文件夹&#xff0c;没用可以删除 添加项目主输出…

学Java需要下载什么软件?都有什么作用?

学习java并非大家想象中的那么简单&#xff0c;除了书本和老师面授&#xff0c;软件的使用也有很大的作用&#xff0c;接下来小编为大家分享的就是关于“学Java需要下载什么软件?都有什么作用?”的内容&#xff0c;希望能够给正在学习java知识的同学带来帮助。 学Java需要下载…

一种新的攻击方式:使用Outlook 表单进行横向渗透和常驻

本文讲的是一种新的攻击方式&#xff1a;使用Outlook 表单进行横向渗透和常驻&#xff0c;背景最近我们针对CrowdStrike服务进行例行调查&#xff0c;发现了一种攻击方法&#xff0c;其主要用于横向渗透和系统常驻&#xff0c;而且是以前我们没有看到过的。这种攻击利用Microso…

ACM 1740 A New Stone Game http://acm.pku.cn/JudgeOnline/problem?id=1740

题目大意:有N堆石头,每堆石头数目在1到100之间,最多有10堆.两人分别取走石头.取石头的规则是:每次只能从1堆中取,每次取走至少1个.取过后还可以把这堆的石头任意分配到其它堆上(这些堆必须有石头,废话呵呵),当然也可以不分配.问给定这些石头堆的情况,两人轮流取,谁先取完谁胜利…

LeetCode实战:回文数

题目英文 Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: trueExample 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From ri…

安全测试的基本原则有哪些?

软件测试顾名思义就是要进行软件安全方面的测试&#xff0c;对于软件测试人员来说&#xff0c;软件安全是一个广泛而复杂的主题&#xff0c;完全避免软件安全缺陷问题是不切实际的&#xff0c;但通过安全测试可以发现并修复软件大部分安全缺陷。下面介绍一些安全测试的基本原则…

LeetCode实战:盛最多水的容器

题目英文 Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a conta…

微软极品Sysinternals Suite工具包使用指南

微软极品Sysinternals Suite工具包使用指南 按照名称首字母排序&#xff0c;点击每个蓝色标题链接都可以转到微软的对应官方页面&#xff0c;有对这些工具包的直接下载地址和更详尽的用法。因为每个软件几乎都可以长篇大论的介绍&#xff0c;所以&#xff0c;在此就只做简介和罗…

【布局】圣杯布局双飞翼布局

背景 随着前端技术的发展推进&#xff0c;web端的布局方式已基本成熟&#xff0c;那么在网站布局方式中&#xff0c;三列布局最为常用&#xff0c;布局方式也有很多&#xff0c;渐渐的开发者们开始从效率的角度优化自己的代码“如果三排布局能将中间的模块放在dom树前面&#x…

UI设计师面试如何操作才能获得高薪

UI设计师在近几年是非常吃香的&#xff0c;求职招聘网站上对于UI设计师的要求也越来越高&#xff0c;那么在面试的过程中UI设计师面试如何操作才能获得高薪呢?来看看下面的详细解析。 UI设计师面试如何操作才能获得高薪? 1、行为举止得体大方 我们先从仪态体态方面说&#xf…

HDU2673-shǎ崽(水题)

如果不能够直接秒杀的题&#xff0c;就不算水题。又应证了那句话&#xff0c;有时候&#xff0c;如果在水题上卡住&#xff0c;那么此题对于你来说&#xff0c;也就不算是水题了额~~ 刚睡醒&#xff0c;迷迷糊糊。 题目的意思很简单&#xff0c;求一个最大的&#xff0c;再求一…

center os7 安装mysql

安装mariadb MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可。开发这个分支的原因之一是&#xff1a;甲骨文公司收购了MySQL后&#xff0c;有将MySQL闭源的潜在风险&#xff0c;因此社区采用分支的方式来避开这个风险。M…

LeetCode实战:最长公共前缀

题目英文 Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string “”. Example 1: Input: ["flower","flow","flight"] Output: "fl"…